#!/bin/bash

# 数据库初始化脚本

set -e

# 默认配置
DB_HOST="127.0.0.1"
DB_PORT="3306"
DB_USER="root"
DB_PASSWORD=""
DB_NAME="your_app_db"

# 读取命令行参数
while [[ $# -gt 0 ]]; do
    case $1 in
        --host)
            DB_HOST="$2"
            shift 2
            ;;
        --port)
            DB_PORT="$2"
            shift 2
            ;;
        --user)
            DB_USER="$2"
            shift 2
            ;;
        --password)
            DB_PASSWORD="$2"
            shift 2
            ;;
        --database)
            DB_NAME="$2"
            shift 2
            ;;
        -h|--help)
            echo "使用方法: $0 [选项]"
            echo "选项:"
            echo "  --host HOST        数据库主机 (默认: 127.0.0.1)"
            echo "  --port PORT        数据库端口 (默认: 3306)"
            echo "  --user USER        数据库用户名 (默认: root)"
            echo "  --password PASS    数据库密码"
            echo "  --database DB      数据库名称 (默认: your_app_db)"
            echo "  -h, --help         显示帮助信息"
            exit 0
            ;;
        *)
            echo "未知选项: $1"
            exit 1
            ;;
    esac
done

echo "=== 数据库初始化开始 ==="
echo "数据库主机: $DB_HOST:$DB_PORT"
echo "数据库用户: $DB_USER"
echo "数据库名称: $DB_NAME"

# 构建MySQL连接参数
MYSQL_CMD="mysql -h$DB_HOST -P$DB_PORT -u$DB_USER"
if [ -n "$DB_PASSWORD" ]; then
    MYSQL_CMD="$MYSQL_CMD -p$DB_PASSWORD"
fi

# 检查MySQL连接
echo "检查数据库连接..."
if ! $MYSQL_CMD -e "SELECT 1;" > /dev/null 2>&1; then
    echo "错误: 无法连接到MySQL数据库"
    echo "请检查数据库配置和连接参数"
    exit 1
fi

echo "数据库连接成功"

# 执行数据库初始化脚本
echo "执行数据库初始化脚本..."
if [ -f "scripts/init_db.sql" ]; then
    $MYSQL_CMD < scripts/init_db.sql
    echo "数据库表创建完成"
else
    echo "错误: 找不到初始化脚本 scripts/init_db.sql"
    exit 1
fi

# 执行种子数据脚本
echo "插入种子数据..."
if [ -f "scripts/seed_data.sql" ]; then
    $MYSQL_CMD < scripts/seed_data.sql
    echo "种子数据插入完成"
else
    echo "警告: 找不到种子数据脚本 scripts/seed_data.sql"
fi

echo "=== 数据库初始化完成 ==="
echo ""
echo "默认管理员账号:"
echo "用户名: admin"
echo "密码: admin123"
echo ""
echo "请及时修改默认密码！"

